The UEFI Specification version 2.1, published Jan. 23, 2007 specifies a Unified Extensible Firmware Interface (UEFI) that provides a software interface between an operating system (OS) and platform firmware of a computing device. The interface defined by the UEFI specification includes data tables which contain platform information, and boot and runtime services which are available to the operating system (OS) loader and the operating system. The UEFI defines boot services, which include text and graphical console support on various devices, bus, block and file services, and runtime services, such as date, time and NVRAM services.
The UEFI may also provide UEFI applications. Rather than booting directly into a full operating system, on some implementations, the user may boot to a UEFI shell and/or another UEFI application. The computing device may execute the UEFI shell and other UEFI applications from a platform firmware device such as, for example, Read-Only Memory (ROM), FLASH memory, battery backed memory, and/or other non-volatile memory device. The computing device may also execute the UEFI shell and other UEFI applications from other devices such as, for example, a hard disk drive, CD-ROM drive, and/or network controller for which the drivers are supplied by the platform firmware device. The shell may be used to execute other UEFI applications, such as setup, OS install, diagnostic or configuration utilities, and system flash updates. The shell and/or other UEFI applications may also be used to play CDs or DVDs without booting an operating system.